延續前篇 DevOps Lab 專案環境建置 - GitLab篇,這次要使用 Cloud Shell 在 GCP 上建立一個新專案,並且要新增三個計算實例 Dev、QA 和 Prod,以便後續在轉寫自動化時能有實際的設備進行佈署。
使用 Cloud Shell 連結 或點擊下圖中的位置,可以進入 Cloud Shell。
Cloud Shell 畫面參考圖如下:
新增一個專案給 devops-lab 使用,指令如下:
$ gcloud projects create --name=my-devops-lab my-devops-lab
Create in progress for [https://cloudresourcemanager.googleapis.com/v1/projects/my-devops-lab].
Waiting for [operations/cp.4732255101655597409] to finish...done.
Enabling service [cloudapis.googleapis.com] on project [my-devops-lab]...
Operation "operations/acf.158d0da5-b89a-4e44-8f9b-d45dfc1219a9" finished successfully.
設定預設 Project ID、Zone 與 Region
$ gcloud config set project my-devops-lab
$ gcloud config set compute/zone asia-east1-a
$ gcloud config set compute/region asia-east1
在寫文章時發現使用指令建立的 Project 竟然沒有連動 Billing Account 導致各種功能的 API 無法使用,這邊手動連動。
提示:目前的 billing 功能仍在 alpha 版本以後可能會有變動
取得 Billing Account 列表
$ gcloud alpha billing accounts list
ACCOUNT_ID NAME OPEN MASTER_ACCOUNT_ID
01AE04-88F505-41482E 我的帳單帳戶 True
連動專案與付費帳號
$ gcloud alpha billing projects link --billing-account=01AE04-88F505-41482E my-devops-lab
billingAccountName: billingAccounts/01AE04-88F505-41482E
billingEnabled: true
name: projects/my-devops-lab/billingInfo
projectId: my-devops-lab
使用指令
gcloud compute images list
並篩選關鍵字 ubuntu 這時可以看到,第一個欄位是Name
,第二個欄位是Project
,這兩個是建立計算實例需要的參數要記住。
$ gcloud compute images list | grep ubuntu
ubuntu-1404-trusty-v20190514 ubuntu-os-cloud ubuntu-1404-lts READY
ubuntu-1604-xenial-v20190913 ubuntu-os-cloud ubuntu-1604-lts READY
ubuntu-1804-bionic-v20190918 ubuntu-os-cloud ubuntu-1804-lts READY
ubuntu-1904-disco-v20190918 ubuntu-os-cloud ubuntu-1904 READY
...
建立計算實例並指定使用 ubuntu 16.04 版本,由於第一次使用到 compute 相關 API 會被詢問是否開啟 API 選擇
Y
後,經過幾分鐘時間計算實例就會被建立起來
$ gcloud compute instances create dev qa prod \
--image=ubuntu-1604-xenial-v20190913 --image-project=ubuntu-os-cloud
API [compute.googleapis.com] not enabled on project [934898608672].
Would you like to enable and retry (this will take a few minutes)?
(y/N)? y
Enabling service [compute.googleapis.com] on project [934898608672]...
Operation "operations/acf.e4fd9941-51de-4e0d-ac66-2e14df638e4c" finished successfully.
Created [https://www.googleapis.com/compute/v1/projects/my-devops-lab/zones/asia-east1-a/instances/dev].
Created [https://www.googleapis.com/compute/v1/projects/my-devops-lab/zones/asia-east1-a/instances/qa].
Created [https://www.googleapis.com/compute/v1/projects/my-devops-lab/zones/asia-east1-a/instances/prod].
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
dev asia-east1-a n1-standard-1 10.140.0.2 35.221.157.140 RUNNING
qa asia-east1-a n1-standard-1 10.140.0.3 34.80.74.137 RUNNING
prod asia-east1-a n1-standard-1 10.140.0.4 104.199.230.182 RUNNING
下一篇幾經思考後,覺得直接在 GCP 上開一台設備專門跑 GitLab Runner,既能讓讀者嘗試建置私有 GitLab Runner,又能更輕易的撰寫後續的 gitlab-ci.yml 覺得頗為合適。